home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Arsenal Files 8
/
The Arsenal Files Collection #8 (Arsenal Computer) (1996).ISO
/
g_quake
/
server1.zip
/
_MANUAL.TXT
< prev
next >
Wrap
Text File
|
1996-09-07
|
18KB
|
410 lines
-------------------------------------------------------------------------
###### Overview:
This is a set of deathmatch oriented QuakeC patches.
The patches are to be installed on servers only.
To a large extent they are organized in a module-like structure:
Module Telefrag:
Reduces the risk of getting telefragged by respawning players.
When a player respawns the module tries to find a spot which is not
occupied by another player. If such a spot is available the player
will respawn there. Only if no such spot is found the player will
respawn in occupied space, thereby telefragging another player.
Note that telefragging caused by players leaving teleporters is not
affected.
Module ExitRules:
Disallows to exit a level too early.
Players can only exit a level
- if at least one player has reached a minimum number of frags
(which is 40 by default).
- and if a certain time has passed on the current level (which
is 1 minute by default).
These ExitRules may be disabled by voting (see Module Vote).
The ExitRules valid for the current level are displayed when
the player enters the level.
Levels like 'dm1'-'dm6','start' and 'end' don't impose ExitRules.
Module Vote:
Allows decisions based on a majoriy of player votes.
Players may use the console commands
vote-exit: to vote for exiting a level immediately.
vote-exitrules: to vote for disabling the rules imposed by
the module ExitRules.
Votes are counted every few seconds.
Voting for exiting allows to leave levels which don't provide an
exit.
Voting via 'vote-exit' and 'vote-exitrules' may both be used to
override the ExitRules for the current level.
The console command 'help-vote' provides some help on available
voting options, the command 'votes' displays current voting
statistics.
Module KickSuicider:
Players suiciding twice within two minutes are kicked out of the
game.
Module Lightning:
This module reduces the damage done when discharging the lighning gun
under water. It furthermore improves the sound of the lightning gun
and causes a lighning gun discharge to happen only if the gun is
really under water.
Module Observer:
As observer you just watch what's happening, without interacting
with other players or with the environment.
This especially means that other players will not notice you when you
are an observer.
As observer you can
- fly around.
- switch to another observation point by pressing 'fire'.
- join the game as regular player by pressing 'jump'.
You can turn into an observer by pressing 'fire' when you
are dead.
When you connect to the server you automatically start as observer.
The command 'help-observer' provides help on the observer mode.
Module Motd:
When connecting to the server a message-of-the-day may be
center-printed to the player's screen.
A moment later, information about local server settings and
extensions is dumped to the player's console.
Module Skin:
This is a slightly improved version of Dennis Noordsij's
(lnoordsi@inter.NL.net) Multiskin, which allows players to use
different skins (see also section Acknowledgements below).
The improvements have the effect that
- corpses show the correct skin.
- skins are preserved across level changings (so that players
have to choose their skin only once).
- the commands 'skin-next' and 'skin-prev' may be used to change
the skin.
- the command 'help-skin' provides some help about available
commands.
- names for Multiskin-1.1 skins and for Top20Skins-1.0 skins are
shown when the player chooses a skin.
Players certainly still have to use proper player and player-head
model files containing the actual skins to be displayed.
ServerModules supports
- the MultiSkin 1.1 PLAYER.MDL file which may be found on
Dennis Noordsij's QuakeC page:
http://web.inter.NL.net/users/L.J.Noordsij/qc.htm
- the Top20Skins PLAYER.MDL and H_PLAYER.MDL file included in the
skin collection
ftp://ftp.cdrom.com/pub/quake/graphics/mdl/top20skins-1.0.zip
When using this set of skins gibbed heads will show the correct
skin also.
Module Init:
Allows client side initialization when connecting to the server
by causing the client to execute a sequence of 'init' commands.
Example:
A player puts the following lines into his autexec.cfg:
alias init init01
alias init01 "init-nextcall; alias init init02; echo successful; "
alias init02 "init-nextskin; alias init init03; " // skin 2
alias init03 "init-nextskin; alias init init04; " // skin 3
alias init04 "init-nextskin; alias init init05; " // skin 4
alias init05 "init-nextskin; alias init init06; " // skin 5
alias init06 "init-nextcall; alias init init07; color 3; "
alias init07 " alias init init01; "
These lines cause that a short time after the player connected
to the server
- he is assigned the skin number 5.
- his color changes to 3.
How it works:
The server first tells the client to execute the command 'init'.
The client executes 'init' which includes either 'init-nextskin'
or 'init-nextcall', both of which tell the server to again let
the client execute the command 'init'. This continues until in
the example above the empty assignment 'init07' terminates the
sequence. Apart from triggering the next step 'init-nextskin'
also increases the skin number by one.
Please note that this module is in an experimental state since
it is not clear how it works for high-ping-time/large-packet-loss
connections, so please tell me about your experiences.
Module LevelSelect:
Allows to specify which levels are offered on the server and in which
order they are to be played.
By default this module is used to modify the original level order
such that instead of the end level the level sequence dm1-...-dm6-end
is played when selecting the end map on the start level (the players
must exit the levels dm1-dm6 and end by voting (see Module Vote)).
Module Messages:
Allows to selectively enable or disable messages about picking up ammo,
armor, backpacks, keys, health, powerups and weapons.
By default these messages are suppressed.
Module Rank:
The command 'rank' displays a sorted ranking table with entries
in the format
X TOTAL = KILLS DEATHS ACCIDENTS = PLAYER
where
X = letter 'D' if the player is dead, letter 'O' if
the player is an observer
PLAYER = the name of the player
TOTAL = his total score
KILLS = how many he killed
DEATHS = how often he got killed by other players
ACCIDENTS = number of self-caused, deathly accidents
A Suicide counts as double-accident.
The default formula for calculating TOTAL is
TOTAL = 3*KILLS - DEATHS - 3*ACCIDENTS
The command 'help-rank' provides help on the format of the ranking
table and should explain the (local) formula used to calculate the
total score as well.
Module ServerConsole:
Does nothing except except of printing some messages to the server
console when a player suicides, is killed, enters the game or is
telefragged by another player.
Module ServerHelp:
Provides the command 'server-help', used to display some help on
server settings and extensions in the player console.
-------------------------------------------------------------------------
###### Bugs/Unwanted Features:
# Observers occasionally get stuck or start in a position from which they
can't move away. If this happens just press 'fire' to jump to another
place or use the command 'observer-noclip' to free yourself.
Observers may also get stuck when passing teleporters with buggy
target spots. The only examples I know so far are
- level e1m1: the teleporter leading to the pentagramm of protection.
- level end: the teleporter leading to a spot from which the player
falls down into the water.
Again, just press 'fire' to jump to another place or use the command
'observer-teleport'.
-------------------------------------------------------------------------
###### How to install:
------------------------
This section assumes that you are a server administrator.
### Testing:
------------
For testing purposes you may first want to try the precompiled PROGS.DAT.
Assuming that QUAKE.EXE resides in C:\GAMES\QUAKE you should
- create the directory C:\GAMES\QUAKE\SERVMODS
- copy the file PROGS.DAT included in the 'Server Modules' archive
to C:\GAMES\QUAKE\SERVMODS
- start a listen server by
QUAKE -GAME SERVMODS -LISTEN 2
### Customizing:
----------------
Customizing requires that you know how to use the program PATCH.
See the file '_patch.txt' included in the 'Server Modules' archive
for details on how to obtain a free copy of this program and on how
to use it. Jeff Epler (jepler@inetnebr.com) wrote '_patch.txt' and
ftp://ftp.cdrom.com/pub/quake/quakec/howpatch.txt
should be the most recent version of this short introduction.
Assuming that the directory C:\GAMES\QUAKE\SERVMODS contains a fresh copy
of unmodified QuakeC sources together with the program QCCDOS you may
proceed in the following way:
# Unzip the 'Server Modules' archive in C:\GAMES\QUAKE\SERVMODS.
# Patch the sources by typing the command
PATCH < _SRVMODS.PAT
# Disable/Enable the usage of a specific module by editing the
USE_MODULE_* constants in file _MODULES.QH .
By default you'll find there
float USE_MODULE_EXITRULES = 1;
float USE_MODULE_INIT = 1;
float USE_MODULE_KICKSUICIDER = 1;
float USE_MODULE_LEVELSELECT = 1;
float USE_MODULE_LIGHTNING = 1;
float USE_MODULE_MESSAGES = 1;
float USE_MODULE_MOTD = 1;
float USE_MODULE_OBSERVER = 1;
float USE_MODULE_RANK = 1;
float USE_MODULE_SERVERHELP = 1;
float USE_MODULE_SKIN = 1;
float USE_MODULE_SERVERCONSOLE = 1;
float USE_MODULE_TELEFRAG = 1;
float USE_MODULE_VOTE = 1;
float USE_SUBMODULE_VOTE_EXIT = 1;
float USE_SUBMODULE_VOTE_EXITRULES = 1;
which means that all modules are enabled.
The USE_SUBMODULE_VOTE_* constants above enable/disable submodules
of the the module 'Vote'. Setting 'USE_SUBMODULE_VOTE_EXIT=0' disables
voting for exiting but voting voting for overriding ExitRules will
still be allowed.
# To add a message-of-the-day to be displayed when a player connects to
the server you should edit the file _MOTD.QC and change the variable
'motd_motd' in the function 'MotdInit'.
Note that by default no message is displayed.
# To change the help about server settings (which is displayed when
connecting to a server or when typing 'help-server') just edit
the function 'ServerHelpShowServerSettings' in the file _SERVHLP.QC.
# If you want to inform players about more special properties of your
server have a look at the function 'ModulesShowInfo' in the file
_MODULES.QC. You can freely add your own messages there.
# The module 'Messages' by default takes care that a player receives no
messages when picking up ammunition, armor, etc.
If you want to allow for some or all of these messages you should edit
the file _MESSAGE.QH and change the value of the flag 'messages_flag'.
# Changing the formula used by the module 'Rank' for calculating the total
score requires you to edit the function 'RankCountEvent' in the file
_RANK.QC in an obvious way.
# The Module 'LevelSelect' allows to specify which maps are offered on
the server and in which order they are played.
To achieve this the function 'LevelSelectSelectLevel' in the file
_LEVSEL.QC is used. The file also contains a commented example
which tells you how to set up you own conditions (for instance how
to exclude certain not-so-good maps).
By default this module is set up so that everything works like in
the original version of Quake, except that when a player selects
the 'end' level the map sequence 'dm1'-...-'dm6'-'end' is played
instead.
# Updating the module 'Skin' may become desirable if new skins become
available in the file PLAYER.MDL which is distributed as part of the
Multiskin package. The changes you will have to make are trivial,
just have a look at the file _SKIN.QC.
# Finally compile the sources by typing the command QCCDOS.
Assuming that compilation succeeded without errors you should now
copy ..\PROGS.DAT into the directory C:\GAMES\QUAKE\SERVMODS.
Change directory to C:\GAMES\QUAKE\ and check your changes by typing
QUAKE -GAME SERVMODS -LISTEN 2
If you're sure that everything works as expected start your
dedicated server as usual for instance by
QUAKE -NOSOUND -NOIPX -NOJOY -DEDICATED 8 +MAP E1M2
or according to your wishes.
-------------------------------------------------------------------------
###### Resources Used:
----------------------
The following impulses are used:
impulse 200 for command 'skin-next'
impulse 201 for command 'skin-prev'
impulse 202 for command 'help-skin'
impulse 203 for command 'rank'
impulse 204 for command 'help-rank'
impulse 205 for command 'help-observer'
impulse 206 for command 'observer-noclip'
impulse 207 for command 'help-server'
impulse 208 for command 'init-nextcall'
impulse 209 for command 'init-nextskin'
impulse 210 for command 'help-exitrules'
impulse 211 for command 'help-vote'
impulse 212 for command 'votes'
impulse 213 for command 'vote-exit'
impulse 214 for command 'vote-exitrules'
Furthermore the spawnparm parm16 is used to save the player flag
'.float player_flag' across level transitions.
-------------------------------------------------------------------------
###### Files:
-------------
_modules.qh
_modules.qc Deals with internal structure of ServerModules.
_plystat.qh
_plystat.qc Deals with internal structure of ServerModules.
_exitrls.qh Module ExitRules (Header)
_exitrls.qc Module ExitRules (Code)
_vote.qh Module Vote (Header)
_vote.qc Module Vote (Code)
_init.qh Module Init (Header)
_init.qc Module Init (Code)
_kckscdr.qh Module KickSuicider (Header)
_kckscdr.qc Module KickSuicider (Code)
_levsel.qh Module LevelSelect (Header)
_levsel.qc Module LevelSelect (Code)
_lightng.qh Module Lightning (Header)
_lightng.qc Module Lightning (Code)
_message.qh Module Messages (Header)
_message.qc Module Messages (Code)
_motd.qh Module Motd (Header)
_motd.qc Module Motd (Code)
_observe.qc Module Observer (Header)
_observe.qh Module Observer (Code)
_rank.qh Module Rank (Header)
_rank.qc Module Rank (Code)
_servhlp.qh Module ServerHelp (Header)
_servhlp.qc Module ServerHelp (Code)
_servcon.qh Module ServerConsole (Header)
_servcon.qc Module ServerConsole (Code)
_skin.qh Module Skin (Header)
_skin.qc Module Skin (Code)
_telefrg.qh Module Telefrag (Header)
_telefrg.qc Module Telefrag (Code)
_conv.pl A perl script used to strip/add CR's when switching
between Linux and DOS.
_srvmods.pat Patch file containing all changes to be made
to the original QuakeC sources.
_COPYING GNU General Public License
_manual.txt Documentation of ServerModules patches.
_changes.txt History of changes.
_patch.txt Provides information on how to patch and on
where to get a free copy of the program PATCH.
progs.dat A precompiled version of the modifications
described here.
-------------------------------------------------------------------------
###### Copyright:
-----------------
/*
**
** Copyright (C) 1996 Johannes Plass
**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with this program; if not, write to the Free Software
** Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
**
** Author: Johannes Plass (plass@dipmza.physik.uni-mainz.de)
**
*/
-------------------------------------------------------------------------
###### Acknowledgements:
------------------------
The module 'Skin' is based on Dennis Noordsij's (lnoordsi@inter.NL.net)
Multiskin QuakeC patch.
Please see Dennis Noordsij's QuakeC page
http://web.inter.NL.net/users/L.J.Noordsij/qc.htm
for further details about MultiSkin.